package com.bs.jianli.util.pwd;

import cn.hutool.crypto.SecureUtil;
import org.apache.commons.lang3.StringUtils;

public class MD5SaltUtils {
    /**
     * 密码 加密
     *
     * @param password 密码
     * @param salt     干扰码
     * @return
     */
    public static String password(String password, String salt) {
        //String hex = DigestUtil.md5Hex(salt + password + salt);
        //return SecureUtil.hmacMd5(password + salt).digestHex(hex);
        return SecureUtil.hmacMd5(password + salt).digestHex(salt);
    }


    /**
     * 密码比较
     *
     * @param password   密码
     * @param salt       干扰码
     * @param dbPassword 数据库密码
     * @return
     */
    public static boolean equals(String password, String salt, String dbPassword) {
        return StringUtils.equals(password(password, salt), dbPassword);
    }

    /**
     * 密码比较
     *
     * @param password   密码
     * @param salt       干扰码
     * @param dbPassword 数据库密码
     * @return
     */
    public static boolean compare(String password, String salt, String dbPassword) {
        return StringUtils.equals(password(password, salt), dbPassword);
    }

    /**
     * 干扰码
     *
     * @return
     */
//    public static String randomSalt() {
//        return StringUtil.randomNanoId(11);
//    }

    /**
     * md5
     *
     * @param str
     * @return
     */
    public static String md5(String str) {
        return SecureUtil.md5(str);
    }
}


